在 GCP 的 IAM 控管為 Principal + role,Principal 是你是誰(可能是 user or instance),role 是你可以做什麼(policies),你可以做的每件小事又稱為 Permission。舉例你可以是 Compute 操作 Role,但裡面可能包含 list permission or get permission。
再查資料的時候有時會被 Identity 跟 Principal 搞混。Identity 指的是身份,身份可能有用戶名、電子郵件地址等資訊,Principal 則是指實際可以被 assign 的實體。
在控管 Principal user 的狀況下,還可以再拆成 Group,目前可以實踐的方式有 Google workspace or Google Group
我們假想我們要控管 3 個團隊資源 DA, PM, Platform Dev,最好的方式就是用 Google Group 來做拆分。並給予特定 Group Permission Set。詳細參考此頁:https://support.google.com/a/answer/33329?hl=en
但因為公司”上層”對於 Group Email 的不偏好,所以很難申請。我沒辦法為了 DA 建立一個 Group 並給予特定的權限。於是我們討論出新解法,使用 Tag IAM Condition。Tag IAM Condition 是指上方我們提到了誰(principal)可以做什麼(Role),可以再加一層判斷什麼條件下可以做。條件包含
限時訪問;例如:僅允許在工作時間訪問
訪問部分資源;例如:僅向前綴為「webapp-frontend-」的虛擬機器授予存取權限
網路位址空間;例如:只允許從公司網路存取